package com.view;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import com.type.TipoDepositoEnum;

@ManagedBean
@ViewScoped
@SuppressWarnings("serial")
public class DepositoView extends BaseView implements Serializable {

	@NotNull(message = "Valor requerido")
	@Size(min = 1, max = 200, message = "El nombre del depósito debe tener entre 1 y 200 caracteres")
	private String nombre;

	private TipoDepositoEnum tipoDeposito;

	private ClienteView cliente;

	private Boolean favorito;

	private List<SeccionProductoView> listaSeccionProducto;

	public DepositoView(Long id, String nombre, TipoDepositoEnum tipoDeposito,
			ClienteView cliente, Boolean favorito,
			List<SeccionProductoView> listaSeccionProducto) {
		this.id = id;
		this.nombre = nombre;
		this.tipoDeposito = tipoDeposito;
		this.cliente = cliente;
		this.favorito = favorito;
		this.listaSeccionProducto = listaSeccionProducto;
	}

	public DepositoView() {
		this(null, null, TipoDepositoEnum.CENTRAL, new ClienteView(), null,
				new ArrayList<SeccionProductoView>());
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public TipoDepositoEnum getTipoDeposito() {
		return tipoDeposito;
	}

	public void setTipoDeposito(TipoDepositoEnum tipoDeposito) {
		this.tipoDeposito = tipoDeposito;
	}

	public ClienteView getCliente() {
		return cliente;
	}

	public void setCliente(ClienteView cliente) {
		this.cliente = cliente;
	}

	public Boolean getFavorito() {
		return favorito;
	}

	public void setFavorito(Boolean favorito) {
		this.favorito = favorito;
	}

	public List<SeccionProductoView> getListaSeccionProducto() {
		return listaSeccionProducto;
	}

	public void setListaSeccionProducto(
			List<SeccionProductoView> listaSeccionProducto) {
		this.listaSeccionProducto = listaSeccionProducto;
	}

}
